#pragma once

#ifdef __TWITTER__
DEFINE_GUID(CLSID_ThemeDefault,0xA7C215DD,0xBB09,0x4045,0x90,0x29,0x9E,0xE9,0xD1,0xD0,0xA3,0x89);

DEFINE_GUID(CLSID_TimelineControl,0x75E49C09,0x05E4,0x4643,0x98,0x3F,0x62,0x4D,0xC0,0x73,0x53,0x5A);
DEFINE_GUID(CLSID_SettingsControl, 0x6AFA6FA2, 0x12D6, 0x450E, 0xAE, 0xFF, 0x60, 0xB6, 0x6F, 0x8B, 0x75, 0x74);
DEFINE_GUID(CLSID_PictureWindow, 0x10AEB079, 0xCE14, 0x4F8F, 0x8C, 0xEE, 0xC4, 0xC6, 0x42, 0x8B, 0xD4, 0xE8);
DEFINE_GUID(CLSID_CustomTabControl, 0x262329E2, 0xB603, 0x4FC0, 0x97, 0xCB, 0x40, 0xD9, 0x5D, 0x41, 0xA1, 0xC0);
DEFINE_GUID(CLSID_UserInfoControl, 0xC65CC0F7, 0x866D, 0x40F6, 0x89, 0xE5, 0x65, 0x2C, 0x02, 0x95, 0xF1, 0x5C);
DEFINE_GUID(CLSID_UserAccountControl, 0x45B12203, 0x6FD3, 0x492E, 0x85, 0x8A, 0x7E, 0xA2, 0x04, 0x54, 0x49, 0x3B);
DEFINE_GUID(CLSID_HomeTimeLineControl, 0x80F4CF87, 0x03B7, 0x4929, 0x8A, 0xBB, 0x11, 0xDC, 0x7D, 0x57, 0xB9, 0x9E);
DEFINE_GUID(CLSID_TwitViewControl, 0x7C7062D1, 0xA7B6, 0x499B, 0xB6, 0xFC, 0x78, 0xB2, 0x45, 0x85, 0x15, 0xDC);
DEFINE_GUID(CLSID_SearchControl, 0x31699CC6, 0xE397, 0x45CB, 0xBB, 0xD6, 0xEC, 0xF8, 0x0D, 0x9C, 0x34, 0x3C);
DEFINE_GUID(CLSID_SearchTimelineControl, 0xDB25B344, 0x8870, 0x45CE, 0x8C, 0x9E, 0xCF, 0x6F, 0x26, 0xC3, 0x2E, 0xBE);
DEFINE_GUID(CLSID_ListsControl, 0xB720FBFB, 0xE607, 0x463A, 0x91, 0xC6, 0x13, 0xD8, 0x27, 0x41, 0xF4, 0xF2);
DEFINE_GUID(CLSID_ListTimelineControl, 0xF35D78C8, 0x546F, 0x4A35, 0xA9, 0x0C, 0x3F, 0xD2, 0x82, 0x92, 0x5C, 0x5A);
#endif

#ifndef __TWITTER__
DEFINE_GUID(CLSID_HomeTimelineControllerService, 0x438C2243, 0x2D84, 0x455D, 0xBE, 0x36, 0xBA, 0xB5, 0x44, 0x62, 0xAB, 0x07);
DEFINE_GUID(CLSID_ImageManagerService, 0x204D2E4F, 0x72BE, 0x41EF, 0x8B, 0x7D, 0x99, 0x2B, 0x89, 0xBE, 0x36, 0xDA);
DEFINE_GUID(CLSID_ColumnsInfo, 0x89CA168E, 0x8568, 0x4653, 0x9D, 0xCF, 0x8D, 0xEB, 0x3C, 0xA2, 0x1A, 0x37);
DEFINE_GUID(CLSID_DownloadService, 0x8A7C5710, 0x9FCB, 0x4FD9, 0x83, 0xA2, 0x36, 0xEE, 0x81, 0xE1, 0x0F, 0xB9);
DEFINE_GUID(CLSID_UpdateService, 0x8C2F7C68, 0xA0A4, 0x4A79, 0x99, 0x08, 0x5F, 0xE3, 0xD1, 0x59, 0x6C, 0x7A);
DEFINE_GUID(CLSID_WindowService, 0xDD23A3C8, 0xD851, 0x4F92, 0x92, 0x01, 0x27, 0x6E, 0xD7, 0x0C, 0x16, 0x2F);
#endif

#define WM_TWIITER_FIRST_MSG WM_ASYNCSVC_LAST_MSG + 1
#define NM_LISTBOX_LCLICK WM_TWIITER_FIRST_MSG + 1
#define NM_LISTBOX_RCLICK WM_TWIITER_FIRST_MSG + 2
#define NM_ITEM_REMOVED WM_TWIITER_FIRST_MSG + 3
#define WM_ANIMATION_TIMER WM_TWIITER_FIRST_MSG + 4
#define NM_LISTBOX_LDOUBLECLICK WM_TWIITER_FIRST_MSG + 5
#define WM_START_NEXT_REPLY_ITERATION WM_TWIITER_FIRST_MSG + 6
#define WM_UPDATE_AVAILABLE WM_TWIITER_FIRST_MSG + 7
#define WM_SETLISTBOX_SCROLL_MODE WM_TWIITER_FIRST_MSG + 8
#define WM_TWIITER_LAST_MSG WM_TWIITER_FIRST_MSG + 100

// {22388E34-795C-421B-8FC5-503C4B5B4425}
DEFINE_GUID(PNAMESP_HOME_TIMELINE_CONTROL, 0x22388e34, 0x795c, 0x421b, 0x8f, 0xc5, 0x50, 0x3c, 0x4b, 0x5b, 0x44, 0x25);
// {C2F9FEC6-D542-4601-B7DE-70B1FE19D67C}
DEFINE_GUID(PNAMESP_TIMELINE_CONTROL, 0xc2f9fec6, 0xd542, 0x4601, 0xb7, 0xde, 0x70, 0xb1, 0xfe, 0x19, 0xd6, 0x7c);
// {0C51F0CB-EDD6-4920-9D75-26C27DAE7DA0}
DEFINE_GUID(PNAMESP_PICTUREWINDOW_CONTROL, 0xc51f0cb, 0xedd6, 0x4920, 0x9d, 0x75, 0x26, 0xc2, 0x7d, 0xae, 0x7d, 0xa0);
// {6E6A68FC-7346-4C12-A93D-5FFBEEB30BDD}
DEFINE_GUID(PNAMESP_USERINFO_CONTROL, 0x6e6a68fc, 0x7346, 0x4c12, 0xa9, 0x3d, 0x5f, 0xfb, 0xee, 0xb3, 0xb, 0xdd);
// {9CA71AF4-9E5B-435D-91DC-923473914856}
DEFINE_GUID(PNAMESP_TWITVIEW_CONTROL, 0x9ca71af4, 0x9e5b, 0x435d, 0x91, 0xdc, 0x92, 0x34, 0x73, 0x91, 0x48, 0x56);
// {1D76AE18-193B-48B8-8591-C85BF4E3FD81}
DEFINE_GUID(PNAMESP_TIMELINE_SEARCH_CONTROL, 0x1d76ae18, 0x193b, 0x48b8, 0x85, 0x91, 0xc8, 0x5b, 0xf4, 0xe3, 0xfd, 0x81);
// {23D9FA44-59E4-447D-9DFC-21C4CF0FBA40}
DEFINE_GUID(PNAMESP_LISTS_CONTROL, 0x23d9fa44, 0x59e4, 0x447d, 0x9d, 0xfc, 0x21, 0xc4, 0xcf, 0xf, 0xba, 0x40);
// {E99C9CF3-01B0-4609-ADE2-B2A873791B3E}
DEFINE_GUID(PNAMESP_LIST_TIMELINE_CONTROL, 0xe99c9cf3, 0x1b0, 0x4609, 0xad, 0xe2, 0xb2, 0xa8, 0x73, 0x79, 0x1b, 0x3e);

// {9C884E2A-2CBC-41EB-A271-FAA6D6000F62}
DEFINE_GUID(SERVICE_FORMS_SERVICE, 0x9c884e2a, 0x2cbc, 0x41eb, 0xa2, 0x71, 0xfa, 0xa6, 0xd6, 0x0, 0xf, 0x62);
// {B6DB4C1A-7BDD-4BE8-81CF-6BF91864C4F4}
DEFINE_GUID(SERVICE_OPEN_URLS, 0xb6db4c1a, 0x7bdd, 0x4be8, 0x81, 0xcf, 0x6b, 0xf9, 0x18, 0x64, 0xc4, 0xf4);
// {B46C02E7-AD44-4CBA-B35D-B026163B7628}
DEFINE_GUID(SERVICE_TIMELINE_THREAD, 0xb46c02e7, 0xad44, 0x4cba, 0xb3, 0x5d, 0xb0, 0x26, 0x16, 0x3b, 0x76, 0x28);
// {DB98A384-EA3D-422A-AD88-9419CE78A952}
DEFINE_GUID(SERVICE_TIMELINE_UPDATE_THREAD, 0xdb98a384, 0xea3d, 0x422a, 0xad, 0x88, 0x94, 0x19, 0xce, 0x78, 0xa9, 0x52);
// {F09E6174-A987-4EC7-8D48-8926508B47E7}
DEFINE_GUID(SERVICE_TIMELINE_STREAMING_THREAD, 0xf09e6174, 0xa987, 0x4ec7, 0x8d, 0x48, 0x89, 0x26, 0x50, 0x8b, 0x47, 0xe7);


// {E0572923-9953-4B17-8D95-0754DA5787E7}
DEFINE_GUID(SERVICE_TIMELINE, 0xe0572923, 0x9953, 0x4b17, 0x8d, 0x95, 0x7, 0x54, 0xda, 0x57, 0x87, 0xe7);
// {5CB15A04-C878-44D2-BFBF-D9C6D73FCFD2}
DEFINE_GUID(SERVICE_TIMELINE_QUEUE, 0x5cb15a04, 0xc878, 0x44d2, 0xbf, 0xbf, 0xd9, 0xc6, 0xd7, 0x3f, 0xcf, 0xd2);

// {29D60E05-FE71-47A2-8CB9-BFE9E76E1490}
DEFINE_GUID(SERVICE_TIMELINE_SHOWMORE_THREAD, 0x29d60e05, 0xfe71, 0x47a2, 0x8c, 0xb9, 0xbf, 0xe9, 0xe7, 0x6e, 0x14, 0x90);
// {935D79BB-2A0F-481A-A36E-3EDCAAC942EB}
DEFINE_GUID(SERVICE_AUTH_THREAD, 0x935d79bb, 0x2a0f, 0x481a, 0xa3, 0x6e, 0x3e, 0xdc, 0xaa, 0xc9, 0x42, 0xeb);
// {1E41E265-8F00-4A72-B4AD-D63343B4DFF1}
DEFINE_GUID(SERVICE_TIMELINE_TIMER, 0x1e41e265, 0x8f00, 0x4a72, 0xb4, 0xad, 0xd6, 0x33, 0x43, 0xb4, 0xdf, 0xf1);
// {C814289F-34D3-4BDA-9A80-BB7ADBD16B31}
DEFINE_GUID(SERVICE_TIMELINE_CLENUP_TIMER, 0xc814289f, 0x34d3, 0x4bda, 0x9a, 0x80, 0xbb, 0x7a, 0xdb, 0xd1, 0x6b, 0x31);

// {C3E600B0-879B-4A0A-AC0C-5D2054E78A1F}
DEFINE_GUID(SERVICE_UPDATEIMAGES_TIMER, 0xc3e600b0, 0x879b, 0x4a0a, 0xac, 0xc, 0x5d, 0x20, 0x54, 0xe7, 0x8a, 0x1f);
// {6C18AD48-92D3-4693-8468-FF9C862B37C8}
DEFINE_GUID(SERVICE_UPDATES_TIMER, 0x6c18ad48, 0x92d3, 0x4693, 0x84, 0x68, 0xff, 0x9c, 0x86, 0x2b, 0x37, 0xc8);
// {34FB9A34-15BC-439D-B56B-8A56A9AB7DC1}
DEFINE_GUID(SERVICE_UPDATES_THREAD, 0x34fb9a34, 0x15bc, 0x439d, 0xb5, 0x6b, 0x8a, 0x56, 0xa9, 0xab, 0x7d, 0xc1);
// {A9EF7DE8-B384-45E7-8A4A-C1A7F6EE8461}
DEFINE_GUID(SERVICE_USERINFO_THREAD, 0xa9ef7de8, 0xb384, 0x45e7, 0x8a, 0x4a, 0xc1, 0xa7, 0xf6, 0xee, 0x84, 0x61);
// {A3A0ABB0-4277-4944-BA12-5AFAEF0412A4}
DEFINE_GUID(SERVICE_FOLLOW_THREAD, 0xa3a0abb0, 0x4277, 0x4944, 0xba, 0x12, 0x5a, 0xfa, 0xef, 0x4, 0x12, 0xa4);
// {9C54FE00-C8F3-4073-8A14-941BA7F0B7C6}
DEFINE_GUID(SERVICE_FOLLOW_STATUS_THREAD, 0x9c54fe00, 0xc8f3, 0x4073, 0x8a, 0x14, 0x94, 0x1b, 0xa7, 0xf0, 0xb7, 0xc6);


// {8326819C-07EE-4CAB-B234-F67FFF6AAB98}
DEFINE_GUID(PTYPE_THEME, 0x8326819c, 0x7ee, 0x4cab, 0xb2, 0x34, 0xf6, 0x7f, 0xff, 0x6a, 0xab, 0x98);
// {DD5761EF-3151-435A-A06A-029951D933C8}
DEFINE_GUID(PTYPE_THEMECOLORMAP, 0xdd5761ef, 0x3151, 0x435a, 0xa0, 0x6a, 0x2, 0x99, 0x51, 0xd9, 0x33, 0xc8);

// {5F6E5739-B25C-4376-BEF8-5CEC9C16603D}
DEFINE_GUID(THEME_DEFAULT, 0x5f6e5739, 0xb25c, 0x4376, 0xbe, 0xf8, 0x5c, 0xec, 0x9c, 0x16, 0x60, 0x3d);

// {3F084ED1-2FEF-4AEE-B40E-FB663D8F1309}
DEFINE_GUID(COMMAND_COPY_TEXT, 0x3f084ed1, 0x2fef, 0x4aee, 0xb4, 0xe, 0xfb, 0x66, 0x3d, 0x8f, 0x13, 0x9);
// {EDFD49B8-1543-456E-B3A8-D46A0540F186}
DEFINE_GUID(COMMAND_COPY_URL, 0xedfd49b8, 0x1543, 0x456e, 0xb3, 0xa8, 0xd4, 0x6a, 0x5, 0x40, 0xf1, 0x86);

// {8E2B59BD-8269-41C2-AB75-915D06B3A3A0}
DEFINE_GUID(COMMAND_COPY_IMAGE_URL, 0x8e2b59bd, 0x8269, 0x41c2, 0xab, 0x75, 0x91, 0x5d, 0x6, 0xb3, 0xa3, 0xa0);
// {1E7FD732-699B-42C6-8C07-BBE05BD97B7D}
DEFINE_GUID(COMMAND_SAVE_IMAGE_URL, 0x1e7fd732, 0x699b, 0x42c6, 0x8c, 0x7, 0xbb, 0xe0, 0x5b, 0xd9, 0x7b, 0x7d);

// {8CEC9CA3-B8EE-4716-BEE9-F9D78DB315BB}
DEFINE_GUID(COMMAND_OPEN_BROWSER, 0x8cec9ca3, 0xb8ee, 0x4716, 0xbe, 0xe9, 0xf9, 0xd7, 0x8d, 0xb3, 0x15, 0xbb);

#define TIMELINE_IMAGE_HEIGHT 200
#define INVALID_COLUMN_INDEX -1
#define INVALID_ITEM_INDEX -1
